﻿namespace SvGame.Logic;

public static partial class GameLogic
{
    public static void HeartBeat(this IRole me)
    {
        //loger.Warn($"HeartBeat: {me.DebugName}");
        // 判断死亡
        if (me.StatusEff.Kee < 0 || me.StatusEff.Sen < 0)
        {
            // todo HeartBeat 击杀任务

            me.FightRemoveAll();
            me.Die();
            return;
        }

        // 判断昏迷
        if (me.StatusCur.Kee < 0 || me.StatusCur.Sen < 0)
        {
            // todo HeartBeat 击杀任务

            me.FightRemoveAll();
            if (!me.Living)
            {
                me.Die();
            }
            else
            {
                me.Unconcious();
            }
            return;
        }

        // todo HeartBeat 判断逃跑

        // 判断busy
        if (me.IsBusy)
        {
            return;
        }

        // attack
        me.Attack();

        // todo HeartBeat 判断chat

        // 状态恢复
        me.HpAutoHeal();

        // 年龄增长
        if (me is Player)
        {
            (me as Player)?.AgeTicksAdd();
        }
    }
}
